#include <stdio.h>
#include <stdlib.h>

#include "Menu.h"


void suivantNiveau (GtkWidget* pwidget, gpointer pdata)	
{	
	char pseudo[50];
	chargerNom(pseudo);
	Profil* pprofil = chargerProfil(pseudo);	//on charge le profil courant
  
	GtkWidget* pbouton1 = NULL;
	GtkWidget* pbouton2 = NULL;
	GtkWidget* pwindow1 = NULL;
	GtkWidget* box = gtk_vbox_new(FALSE, 1);
 
	pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);
	gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);
	g_signal_connect(G_OBJECT(pwindow1), "destroy", G_CALLBACK(gtk_main_quit), NULL);
	
	if (getNiveauActuelProfil(pprofil) == 0 )  //le joueur debute ou n'a pas réussi à terminer le premier niveau
	{
		gtk_window_set_title(GTK_WINDOW(pwindow1), "J'espère que vous êtes prêt");
		
		pbouton1 = gtk_button_new_with_mnemonic("Direction: le premier quadrant");

		gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
		
		g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau1), NULL);
	}
	
	//on teste si le joueur a fini un des niveaux (la valeur 1 signifie que le joueur a fini le niveau 1 et ainsi de suite)
	else if (getNiveauActuelProfil(pprofil) == 1 || getNiveauActuelProfil(pprofil) == 2 
	    || getNiveauActuelProfil(pprofil) == 3 || getNiveauActuelProfil(pprofil) == 4)
	{
		
		gtk_window_set_title(GTK_WINDOW(pwindow1), "Félicitations, vous pouvez accéder au prochain quadrant");
		
		//le joueur peut choisir de continuer ou de s'arrêter
		pbouton1 = gtk_button_new_with_mnemonic("Je détruirai les carnivores pour l'Empire");
		pbouton2 = gtk_button_new_with_mnemonic("Mon équipage doit se reposer, je demande une pause");
		
		gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
		gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
		
		g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(gtk_main_quit), NULL);

		//suivant quel niveau a ete fini on charge le suivant
		if (getNiveauActuelProfil(pprofil) == 1)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau2), NULL);
		else if (getNiveauActuelProfil(pprofil) == 2)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau3), NULL);
		else if (getNiveauActuelProfil(pprofil) == 3)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau4), NULL);
		else if (getNiveauActuelProfil(pprofil) == 4)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau5), NULL);
	}
	//Cette partie permet de recharger le même niveau si le joueur désire continuer après une défaite
	//la valeur 10 signifie que le joueur a une nouvelle chance de finir le premier niveau et ainsi de suite
	else if (getNiveauActuelProfil(pprofil) == 10 || getNiveauActuelProfil(pprofil) == 11 || getNiveauActuelProfil(pprofil) == 12
	         || getNiveauActuelProfil(pprofil) == 13 || getNiveauActuelProfil(pprofil) == 14)
	{
		
		gtk_window_set_title(GTK_WINDOW(pwindow1), "Le Haut-Conseil espère que cet échec n'est que temporaire");
		
		pbouton1 = gtk_button_new_with_mnemonic("Les carnivores n'auront pas deux fois de la chance");
		pbouton2 = gtk_button_new_with_mnemonic("Mon vaisseau a besoin de réparations sérieuses avant d'être opérationnel");
		
		gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
		gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
		
		g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(gtk_main_quit), NULL);
	
		if (getNiveauActuelProfil(pprofil) == 10)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau1), NULL);
		else if (getNiveauActuelProfil(pprofil) == 11)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau2), NULL);
		else if (getNiveauActuelProfil(pprofil) == 12)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau3), NULL);
		else if (getNiveauActuelProfil(pprofil) == 13)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau4), NULL);
		else if (getNiveauActuelProfil(pprofil) == 14)
			g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationNiveau5), NULL);
	}
	else 	//le joueur a repoussé les carnivores
	{
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "Vous avez sauvé l'Empire, félicitations");
	  pbouton1 = gtk_button_new_with_mnemonic("C'est un honneur de continuer la lutte");
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(ecran_jeu), NULL);
	  pbouton2 = gtk_button_new_with_mnemonic("J'ai mérité un peu de repos");
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(gtk_main_quit), NULL);
	}
		
	
	gtk_container_add(GTK_CONTAINER(pwindow1), box);
	
	gtk_widget_show_all(pwindow1);

}

void creationNiveau5 (GtkWidget* pwidget,gpointer pdata)  
{	
  	sdlNiveau plevel_sdl;
	Niveau* pniveau;  
	char pseudo[50];
	chargerNom(pseudo);
	Profil* pprofil = chargerProfil(pseudo);
	setNiveauActuelProfil(pprofil, 4);
	setNiveauSuivantProfil(pprofil, 5);
	sauvegarderProfil(pprofil);
	
	pniveau = creerNiveauBenou5();  	//on cree le niveau 5
	setDifficulteNiveau(pniveau, getDifficulteProfil(pprofil));
	setVieHeros (niveauGetHerosPtr(pniveau), getVieHeros(niveauGetHerosPtr(pniveau)) - 20*getDifficulteProfil(pprofil));
	plevel_sdl.niveau = (*pniveau);		
	sdlNiveauInit(&(plevel_sdl));
	sdlNiveauBoucle(&(plevel_sdl));

	detruireProfil(&(pprofil));
	
	suivantNiveau(pwidget,pdata);

}

void creationNiveau4 (GtkWidget* pwidget,gpointer pdata)  
{	
  	sdlNiveau plevel_sdl;
	Niveau* pniveau;  
	char pseudo[50];
	chargerNom(pseudo);
	Profil* pprofil = chargerProfil(pseudo);
	setNiveauActuelProfil(pprofil, 3);
	setNiveauSuivantProfil(pprofil, 4);
	sauvegarderProfil(pprofil);
	
	pniveau = creerNiveauBenou4();  	//on cree le niveau 4
	setDifficulteNiveau(pniveau, getDifficulteProfil(pprofil));
	setVieHeros (niveauGetHerosPtr(pniveau),getVieHeros(niveauGetHerosPtr(pniveau)) - 20*getDifficulteProfil(pprofil));
	plevel_sdl.niveau = (*pniveau);		
	sdlNiveauInit(&(plevel_sdl));
	sdlNiveauBoucle(&(plevel_sdl));

	detruireProfil(&(pprofil));
	
	suivantNiveau(pwidget,pdata);

}

void creationNiveau3 (GtkWidget* pwidget,gpointer pdata)  
{	
  	sdlNiveau plevel_sdl;
	Niveau* pniveau;  
	char pseudo[50];
	chargerNom(pseudo);
	Profil* pprofil = chargerProfil(pseudo);
	setNiveauActuelProfil(pprofil, 2);
	setNiveauSuivantProfil(pprofil, 3);
	sauvegarderProfil(pprofil);
	
	pniveau = creerNiveauBenou3();  	//on cree le niveau 3
	setDifficulteNiveau(pniveau, getDifficulteProfil(pprofil));
	setVieHeros (niveauGetHerosPtr(pniveau), getVieHeros(niveauGetHerosPtr(pniveau)) - 20*getDifficulteProfil(pprofil));
	plevel_sdl.niveau = (*pniveau);		
	sdlNiveauInit(&(plevel_sdl));
	sdlNiveauBoucle(&(plevel_sdl));

	detruireProfil(&(pprofil));
	
	suivantNiveau(pwidget,pdata);

}

void creationNiveau2 (GtkWidget* pwidget,gpointer pdata)  
{	
  	sdlNiveau plevel_sdl;
	Niveau* pniveau;  
	char pseudo[50];
	chargerNom(pseudo);
	Profil* pprofil = chargerProfil(pseudo);
	setNiveauActuelProfil(pprofil, 1);
	setNiveauSuivantProfil(pprofil, 2);
	sauvegarderProfil(pprofil);
	
	pniveau = creerNiveauBenou2();  	//on cree le niveau 2
	setDifficulteNiveau(pniveau, getDifficulteProfil(pprofil));
	setVieHeros (niveauGetHerosPtr(pniveau), getVieHeros(niveauGetHerosPtr(pniveau)) - 20*getDifficulteProfil(pprofil));
	plevel_sdl.niveau = (*pniveau);		
	sdlNiveauInit(&(plevel_sdl));
	sdlNiveauBoucle(&(plevel_sdl));
	
	detruireProfil(&(pprofil));
	
	suivantNiveau(pwidget,pdata);

}
	
void creationNiveau1 (GtkWidget* pwidget,gpointer pdata)  //fonction type permettant de charger un niveau
{	
  	sdlNiveau plevel_sdl;
	Niveau* pniveau;  
	char pseudo[50];
	chargerNom(pseudo);	//on recupere le pseudo courant
	Profil* pprofil = chargerProfil(pseudo);		
	setNiveauActuelProfil(pprofil, 0);		//on met a jour la valeur du niveau dans le profil
	setNiveauSuivantProfil(pprofil, 1);
	sauvegarderProfil(pprofil);
	pniveau = creerNiveauBenou1();  		//on cree le niveau 1
	setDifficulteNiveau(pniveau, getDifficulteProfil(pprofil));     //par defaut un terrain est charge avec la difficulte
									//facile il faut donc changer cette valeur
	setVieHeros (niveauGetHerosPtr(pniveau), getVieHeros(niveauGetHerosPtr(pniveau)) - 20*getDifficulteProfil(pprofil));
	
	plevel_sdl.niveau = (*pniveau);		
	sdlNiveauInit(&(plevel_sdl));
	sdlNiveauBoucle(&(plevel_sdl));

	detruireProfil(&(pprofil));			
	
	suivantNiveau(pwidget, pdata);			//on appelle la fonction de gestion de niveaux

}
 
void survivor (GtkWidget* pwidget,gpointer pdata)
{	
	Niveau* plevel;
	plevel=creerNiveauSurvivor();
	sdlNiveau plevel_sdl;
	plevel_sdl.niveau=(*plevel);
	sdlNiveauInit(&(plevel_sdl));
	sdlNiveauBoucle(&(plevel_sdl));
}

/* Fonction callback execute lors du signal "activate" */
void on_activate_entry(GtkWidget *entree_texte, gpointer data)
{
	  const gchar *saisie_texte;

    /* Recuperation du texte contenu dans le GtkEntry */
	  saisie_texte = gtk_entry_get_text(GTK_ENTRY(entree_texte));

    /* Modification du texte contenu dans le GtkLabel */
	  gtk_label_set_text(GTK_LABEL((GtkWidget*)data), saisie_texte);
}

/* Fonction callback executee lors du signal "clicked" */

void on_copier_button_creation_selection_heros(GtkWidget *pButton, gpointer data)
{   	
	  GtkWidget *pentree_texte_temp;
	  GtkWidget *pTempLabel;
	  GList *plist;
	  const gchar *saisie_texte;

	/* Recuperation de la liste des elements que contient la GtkVBox */
	plist = gtk_container_get_children(GTK_CONTAINER((GtkWidget*)data));

	/* Le premier element est le GtkEntry */
	pentree_texte_temp = GTK_WIDGET(plist->data);

	/* Passage a l element suivant : le GtkButton */
	plist = g_list_next(plist);

	/* Passage a l element suivant : le GtkLabel */
	plist = g_list_next(plist);

	/* Cet element est le GtkLabel */	
	pTempLabel = GTK_WIDGET(plist->data);
	
	/* Recuperation du texte contenu dans le GtkEntry */
	saisie_texte = gtk_entry_get_text(GTK_ENTRY(pentree_texte_temp));
	FILE* fichier = fopen((char*)saisie_texte, "r");
	
	if (fichier != NULL)
	{
		sauvegarderNom ((char*)saisie_texte);        //on cast le gchar* en char* pour la fonction sauvegarderNom
		fclose(fichier);
		
	}
	else
	{
		Profil* nouveau_profil = creerProfil((char*)saisie_texte, 0, 0, 0, 0);
		sauvegarderNom ((char*)saisie_texte);
		sauvegarderProfil(nouveau_profil);
	}
	
	/* Modification du texte contenu dans le GtkLabel */
	gtk_label_set_text(GTK_LABEL(pTempLabel), saisie_texte);

	/* Liberation de la memoire utilisee par la liste */
	g_list_free(plist);
    
	GtkWidget* pwindow1;
	GtkWidget* pbouton1;
	GtkWidget* pVBox;
    
	pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(pwindow1), "confirmation de la saisie");
	gtk_window_set_default_size(GTK_WINDOW(pwindow1), 800, 600);
	gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);
	g_signal_connect(G_OBJECT(pwindow1), "destroy", G_CALLBACK(gtk_main_quit), NULL);
	   
	pbouton1 = gtk_button_new_with_mnemonic("_Menu Jeu");
	  
	pVBox = gtk_vbox_new(TRUE, 0);
	gtk_container_add(GTK_CONTAINER(pwindow1), pVBox);
	gtk_box_pack_start(GTK_BOX(pVBox), pbouton1, TRUE, FALSE, 0);
    
	g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(choix_difficulte), NULL);
	  
	gtk_widget_show_all(pwindow1);
}

void creationSelectionHeros (GtkWidget* pwidget,gpointer pdata)
{	
	
	  GtkWidget* pwindow1 = NULL;
	  GtkWidget* pVBox = NULL;
	  GtkWidget* pentree_texte = NULL;
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* plabel = NULL;
  
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "creation/selection du heros");
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1), 800, 600);
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);
	  g_signal_connect(G_OBJECT(pwindow1), "destroy", G_CALLBACK(gtk_main_quit), NULL);
	  
	  pVBox = gtk_vbox_new(TRUE, 0);
	  gtk_container_add(GTK_CONTAINER(pwindow1), pVBox);

	  //creation de la zone d insertion de texte
	  pentree_texte = gtk_entry_new();
	  //insertion de pentree_texte dans une box
	  gtk_box_pack_start(GTK_BOX(pVBox), pentree_texte, TRUE, FALSE, 0);
	  
	  pbouton1 = gtk_button_new_with_mnemonic("Charger");
	  gtk_box_pack_start(GTK_BOX(pVBox), pbouton1, TRUE, FALSE, 0);

	  plabel = gtk_label_new(NULL);
	  gtk_box_pack_start(GTK_BOX(pVBox), plabel, TRUE, FALSE, 0);

	    g_signal_connect(G_OBJECT(pwindow1), "clicked", G_CALLBACK(premier_ecran), NULL);
	  // Connexion du signal "activate" du GtkEntry
	   g_signal_connect(G_OBJECT(pentree_texte), "activate", G_CALLBACK(on_activate_entry), (GtkWidget*) plabel);

	  // Connexion du signal "clicked" du GtkButton
	  // La donnee supplementaire est la GtkVBox pVBox
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(on_copier_button_creation_selection_heros), (GtkWidget*) pVBox);

	  gtk_widget_show_all(pwindow1);
	
}


void ecran_jeu (GtkWidget* pwidget, gpointer pdata)
{	  
	  GtkWidget* pwindow1 = NULL;
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "Ecran de jeu");
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);
	  
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  GtkWidget* pbouton3 = NULL;
	  GtkWidget* pbouton4 = NULL;
	  pbouton1 = gtk_button_new_with_mnemonic("_Jouer");
	  pbouton2 = gtk_button_new_with_mnemonic("_Survivor");
	  pbouton3 = gtk_button_new_with_mnemonic("_Retour au menu de choix du héros");
	  pbouton4 = gtk_button_new_with_mnemonic("_Retour au choix de difficulté");
	  
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton3, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton4, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(suivantNiveau), pdata);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(survivor), pdata);
	  g_signal_connect(G_OBJECT(pbouton3), "clicked", G_CALLBACK(premier_ecran), pdata);
	  g_signal_connect(G_OBJECT(pbouton4), "clicked", G_CALLBACK(choix_difficulte), pdata);
	  g_signal_connect(G_OBJECT(pwindow1), "destroy", G_CALLBACK(gtk_main_quit), NULL);
  
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}

void confirmation_extreme (GtkWidget* pwidget, gpointer pdata)
{
	  char pseudo[50];
	  chargerNom(pseudo);
	  Profil* pprofil = chargerProfil(pseudo);			
	  setDifficulteProfil(pprofil, 3);   //3 correspond à la difficulté extrème
	  sauvegarderProfil(pprofil);
}
	  

void difficulte_extreme (GtkWidget* pwidget, gpointer pdata)
{
	  
	  GtkWidget* pwindow1 = NULL;							
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "confirmation difficulte");			
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);			
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);		
	  
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  pbouton1 = gtk_button_new_with_mnemonic("_Je ferai face à tout");
	  pbouton2 = gtk_button_new_with_mnemonic("_Mourir ne me fait pas envie");
	  
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(confirmation_extreme), NULL);
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(ecran_jeu), NULL);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(choix_difficulte), NULL);
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}

void confirmation_difficile (GtkWidget* pwidget, gpointer pdata)
{
	  char pseudo[50];
	  chargerNom(pseudo);
	  Profil* pprofil = chargerProfil(pseudo);			
	  setDifficulteProfil(pprofil, 2);		
	  sauvegarderProfil(pprofil);
}

void difficulte_difficile (GtkWidget* pwidget, gpointer pdata)
{
	  GtkWidget* pwindow1 = NULL;							
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "confirmation difficulte");			
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);			
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);		
	  
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  pbouton1 = gtk_button_new_with_mnemonic("_Difficile, je gère");
	  pbouton2 = gtk_button_new_with_mnemonic("_J'ai un mauvais pressentiment");
	  
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(ecran_jeu), NULL);
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(confirmation_difficile), NULL);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(choix_difficulte), NULL);
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}

void confirmation_moyen (GtkWidget* pwidget, gpointer pdata)
{
	char pseudo[50];
	chargerNom(pseudo);
	Profil* pprofil = chargerProfil(pseudo);			
	setDifficulteProfil(pprofil, 1);		
	sauvegarderProfil(pprofil);
}

void difficulte_moyen (GtkWidget* pwidget, gpointer pdata)
{
	  GtkWidget* pwindow1 = NULL;							
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "confirmation difficulte");			
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);			
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);		
	  
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  pbouton1 = gtk_button_new_with_mnemonic("_Moyen, c'est pour moi");
	  pbouton2 = gtk_button_new_with_mnemonic("_C'était une erreur, je veux changer");
	  
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(confirmation_moyen), NULL);
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(ecran_jeu), NULL);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(choix_difficulte), NULL);
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}

void confirmation_facile (GtkWidget* pwidget, gpointer pdata)
{
	  char pseudo[50];
	  chargerNom(pseudo);
	  Profil* pprofil = chargerProfil(pseudo);
	  setDifficulteProfil(pprofil, 0);	//0 correspond à la difficulté facile
	  sauvegarderProfil(pprofil);
}

void difficulte_facile (GtkWidget* pwidget, gpointer pdata)
{
	  GtkWidget* pwindow1 = NULL;							
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "confirmation difficulte");			
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);			
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);		
	  
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  pbouton1 = gtk_button_new_with_mnemonic("_Je confirme que j'ai choisi Facile, je veux jouer !!!!!!");
	  pbouton2 = gtk_button_new_with_mnemonic("_Finalement, je pense prendre plus dur");
	  
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(confirmation_facile), NULL);
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(ecran_jeu), NULL);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(choix_difficulte), NULL);
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}

void choix_difficulte (GtkWidget* pwidget, gpointer pdata)
{	 
	  GtkWidget* pwindow1 = NULL;							
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "Poireau");			
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);			
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);		
	  
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  GtkWidget* pbouton3 = NULL;
	  GtkWidget* pbouton4 = NULL;
	  
	  pbouton1 = gtk_button_new_with_mnemonic("_Je suis prudent, je choisis Facile");
	  pbouton2 = gtk_button_new_with_mnemonic("_Je me défends, Moyen ira");
	  pbouton3 = gtk_button_new_with_mnemonic("_Moi, je suis un dur, je choisis Difficile");
	  pbouton4 = gtk_button_new_with_mnemonic("_Extreme, je suis sur");
	  
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton3, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton4, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(difficulte_facile), NULL);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(difficulte_moyen), NULL);
	  g_signal_connect(G_OBJECT(pbouton3), "clicked", G_CALLBACK(difficulte_difficile), NULL);
	  g_signal_connect(G_OBJECT(pbouton4), "clicked", G_CALLBACK(difficulte_extreme), NULL);
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}


void premier_ecran (GtkWidget* pwidget, gpointer pdata)
{	
	  GtkWidget* pwindow1 = NULL;	
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);//declaration d une fenetre
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "Poireau");			//titre de le fenetre
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);			//taille de la fenetre
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);		//position de la fenetre
	  
	  GtkWidget* pbouton1 = NULL;
	  pbouton1 = gtk_button_new_with_mnemonic("_Créer ou sélectionner un héros");
	  
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(creationSelectionHeros), NULL); //si on clique sur "Selectionner un heros" on
											     //provoque l'appel de la fonction selectionHeros.
	  g_signal_connect(G_OBJECT(pwindow1), "destroy", G_CALLBACK(gtk_main_quit), NULL);  //si on clique sur la croix cela ferme la fenetre
  
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);
}

void menu (int argc, char** argv)
{
	  gtk_init(&argc, &argv);
	  
	  GtkWidget* pwindow1 = NULL;
	  GtkWidget* pbouton1 = NULL;
	  GtkWidget* pbouton2 = NULL;
	  GtkWidget* box = gtk_vbox_new(FALSE, 1);
	  
	  pwindow1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	  gtk_window_set_title(GTK_WINDOW(pwindow1), "Poireau");
	  gtk_window_set_default_size(GTK_WINDOW(pwindow1),800,600);
	  gtk_window_set_position (GTK_WINDOW (pwindow1), GTK_WIN_POS_CENTER);
	  
	  pbouton1 = gtk_button_new_with_mnemonic("_Gestion des heros");
	  pbouton2 = gtk_button_new_with_mnemonic("_Jouer maintenant");
	
	  gtk_box_pack_start(GTK_BOX(box), pbouton1, FALSE, FALSE, 1);
	  gtk_box_pack_start(GTK_BOX(box), pbouton2, FALSE, FALSE, 1);
	  
	  g_signal_connect(G_OBJECT(pbouton1), "clicked", G_CALLBACK(premier_ecran), NULL);
	  g_signal_connect(G_OBJECT(pbouton2), "clicked", G_CALLBACK(suivantNiveau), NULL);
	  g_signal_connect(G_OBJECT(pwindow1), "destroy", G_CALLBACK(gtk_main_quit), NULL);
  
	  gtk_container_add(GTK_CONTAINER(pwindow1), box);

	  gtk_widget_show_all(pwindow1);				//permet l affichage de tous les éléments.
	  gtk_main();
}
